From: robert.mader@collabora.com Date: Mon, 20 Feb 2023 17:27:32 +0000 (+0100) Subject: screencastService: Do not try multiple pipelines on old Pipewire versions X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~337^2~2^2~104 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=80d72cfd32e40cdb28e3df49f96f7336113bfd82;p=gnome-shell.git screencastService: Do not try multiple pipelines on old Pipewire versions Pipewire versions < 0.3.67 may not fail immediatly on negotiation errors, thus use the last/fallback pipeline directly. Technically, a similar recent version of Wireplumber is required as well, but we can't check that easily and the combination of old Wireplumber and new Pipewire is quite unlikely. Part-of: --- diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js index 1bc41a651..3183a0093 100644 --- a/js/dbusServices/screencast/screencastService.js +++ b/js/dbusServices/screencast/screencastService.js @@ -244,7 +244,10 @@ var Recorder = class { this._nodeId = nodeId; this._pipelineState = PipelineState.STARTING; - this._pipelineConfigs = PIPELINES.values(); + const fallbackSupported = + Gst.Registry.get().check_feature_version('pipewiresrc', 0, 3, 67); + this._pipelineConfigs = fallbackSupported + ? PIPELINES.values() : [PIPELINES.at(-1)].values(); this._tryNextPipeline(); }); this._sessionProxy.StartSync();